/****************************************************************************************
 *       Filename:  gt911.h
 *    Description:  
 *        Version:  1.0
 *        Created:  08/22/2022 05:43:10 PM
 *         Author:  andid (), andid@sntu.net.cn
 *        Company:  ranzgou co,ltd
 ****************************************************************************************/
#ifndef __GT9X_H__
#define __GT9X_H__

#define GT9x_ADDR 0x5D

#define GT9x_PID   0x8140   //gt9x产品ID寄存器
#define GT9x_CTRL  0x8040   //gt9x控制寄存器
#define GT9x_CFGS  0x8047   //gt9x配置寄存器
#define GT9x_CHECK 0x80FF   //gt9x校验和寄存器

#define GT9x_GSTID 0x814E   //当前检测到的触摸情况
#define GT9x_TP1   0x8150   //第一个触摸点数据地址
#define GT9x_TP2   0x8158   //第二个触摸点数据地址
#define GT9x_TP3   0x8160   //第三个触摸点数据地址
#define GT9x_TP4   0x8168   //第四个触摸点数据地址
#define GT9x_TP5   0x8170   //第五个触摸点数据地址

#define TP_PRESS   0x80
#define TP_TOUCH   5

typedef struct {
	uint8_t state;
	uint16_t x[5];
	uint16_t y[5];
}gtdev_t;

void gt911_init(void);
bool gt911_read_points(int16_t *x, int16_t *y);
#endif
